home *** CD-ROM | disk | FTP | other *** search
- package sun.awt.windows;
-
- import java.awt.Button;
- import java.awt.Canvas;
- import java.awt.Checkbox;
- import java.awt.CheckboxMenuItem;
- import java.awt.Choice;
- import java.awt.Dialog;
- import java.awt.Dimension;
- import java.awt.FileDialog;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Frame;
- import java.awt.Image;
- import java.awt.Label;
- import java.awt.List;
- import java.awt.Menu;
- import java.awt.MenuBar;
- import java.awt.MenuItem;
- import java.awt.Panel;
- import java.awt.Scrollbar;
- import java.awt.TextArea;
- import java.awt.TextField;
- import java.awt.Toolkit;
- import java.awt.Window;
- import java.awt.image.ColorModel;
- import java.awt.image.ImageObserver;
- import java.awt.image.ImageProducer;
- import java.awt.peer.ButtonPeer;
- import java.awt.peer.CanvasPeer;
- import java.awt.peer.CheckboxMenuItemPeer;
- import java.awt.peer.CheckboxPeer;
- import java.awt.peer.ChoicePeer;
- import java.awt.peer.DialogPeer;
- import java.awt.peer.FileDialogPeer;
- import java.awt.peer.FramePeer;
- import java.awt.peer.LabelPeer;
- import java.awt.peer.ListPeer;
- import java.awt.peer.MenuBarPeer;
- import java.awt.peer.MenuItemPeer;
- import java.awt.peer.MenuPeer;
- import java.awt.peer.PanelPeer;
- import java.awt.peer.ScrollbarPeer;
- import java.awt.peer.TextAreaPeer;
- import java.awt.peer.TextFieldPeer;
- import java.awt.peer.WindowPeer;
- import java.net.URL;
- import java.util.Hashtable;
- import netscape.applet.AppletPeer;
- import sun.awt.ObjectPeer;
- import sun.awt.image.ByteArrayImageSource;
- import sun.awt.image.FileImageSource;
- import sun.awt.image.ImageRepresentation;
- import sun.awt.image.URLImageSource;
-
- class WToolkit extends Toolkit implements Runnable {
- boolean serverThread = true;
- boolean libraryLoaded = false;
- Thread callbackThread;
- static Hashtable imgHash = new Hashtable();
- static ColorModel screenmodel;
-
- Thread getCallbackThread() {
- return this.callbackThread;
- }
-
- public WToolkit() {
- (new Thread(this, "AWT-Windows")).start();
- synchronized(this){}
-
- try {
- try {
- while(this.serverThread) {
- this.wait(5000L);
- }
- } catch (InterruptedException var4) {
- System.exit(1);
- }
- } catch (Throwable var5) {
- throw var5;
- }
-
- if (this.libraryLoaded) {
- this.callbackThread = new Thread(this, "AWT-Callback");
- this.callbackThread.start();
- }
-
- }
-
- private native void init(Thread var1);
-
- public void run() {
- if (this.serverThread) {
- try {
- SecurityManager.enablePrivilege("UniversalLinkAccess");
- String var1 = System.getProperty("os.name");
- if (var1.compareTo("16-bit Windows") == 0) {
- System.loadLibrary("awt1640");
- } else {
- System.loadLibrary("awt3240");
- }
-
- SecurityManager.revertPrivilege();
- this.init(Thread.currentThread());
- this.libraryLoaded = true;
- this.serverThread = false;
- this.eventLoop();
- } catch (UnsatisfiedLinkError var2) {
- this.libraryLoaded = false;
- this.serverThread = false;
- }
- } else {
- this.callbackLoop();
- }
- }
-
- native void callbackLoop();
-
- native void eventLoop();
-
- public native void notImplemented();
-
- protected ButtonPeer createButton(Button var1) {
- return new WButtonPeer(var1);
- }
-
- protected TextFieldPeer createTextField(TextField var1) {
- return new WTextFieldPeer(var1);
- }
-
- protected LabelPeer createLabel(Label var1) {
- return new WLabelPeer(var1);
- }
-
- protected ListPeer createList(List var1) {
- return new WListPeer(var1);
- }
-
- protected CheckboxPeer createCheckbox(Checkbox var1) {
- return new WCheckboxPeer(var1);
- }
-
- protected ScrollbarPeer createScrollbar(Scrollbar var1) {
- return new WScrollbarPeer(var1);
- }
-
- protected TextAreaPeer createTextArea(TextArea var1) {
- return new WTextAreaPeer(var1);
- }
-
- protected ChoicePeer createChoice(Choice var1) {
- return new WChoicePeer(var1);
- }
-
- protected FramePeer createFrame(Frame var1) {
- return new WFramePeer(var1);
- }
-
- protected CanvasPeer createCanvas(Canvas var1) {
- return new WCanvasPeer(var1);
- }
-
- protected PanelPeer createPanel(Panel var1) {
- return new WPanelPeer(var1);
- }
-
- protected WindowPeer createWindow(Window var1) {
- return new WWindowPeer(var1);
- }
-
- protected DialogPeer createDialog(Dialog var1) {
- return new WDialogPeer(var1);
- }
-
- protected FileDialogPeer createFileDialog(FileDialog var1) {
- return new WFileDialogPeer(var1);
- }
-
- protected MenuBarPeer createMenuBar(MenuBar var1) {
- return new WMenuBarPeer(var1);
- }
-
- protected MenuPeer createMenu(Menu var1) {
- return new WMenuPeer(var1);
- }
-
- protected MenuItemPeer createMenuItem(MenuItem var1) {
- return new WMenuItemPeer(var1);
- }
-
- protected CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem var1) {
- return new WCheckboxMenuItemPeer(var1);
- }
-
- static synchronized Image getImageFromHash(Toolkit var0, URL var1) {
- System.getSecurityManager().checkURLConnect(var1);
- Image var2 = (Image)imgHash.get(var1);
- if (var2 == null) {
- try {
- var2 = var0.createImage(new URLImageSource(var1));
- imgHash.put(var1, var2);
- } catch (Exception var3) {
- }
- }
-
- return var2;
- }
-
- static synchronized Image getImageFromHash(Toolkit var0, String var1) {
- System.getSecurityManager().checkRead(var1);
- Image var2 = (Image)imgHash.get(var1);
- if (var2 == null) {
- try {
- var2 = var0.createImage(new FileImageSource(var1));
- imgHash.put(var1, var2);
- } catch (Exception var3) {
- }
- }
-
- return var2;
- }
-
- public Image getImage(String var1) {
- return getImageFromHash(this, (String)var1);
- }
-
- public Image getImage(URL var1) {
- return getImageFromHash(this, (URL)var1);
- }
-
- static boolean prepareScrImage(Image var0, int var1, int var2, ImageObserver var3) {
- if (var1 != 0 && var2 != 0) {
- WImage var4 = (WImage)var0;
- if (((sun.awt.image.Image)var4).hasError()) {
- if (var3 != null) {
- var3.imageUpdate(var0, 192, -1, -1, -1, -1);
- }
-
- return false;
- } else {
- if (var1 < 0) {
- var1 = -1;
- }
-
- if (var2 < 0) {
- var2 = -1;
- }
-
- ImageRepresentation var5 = var4.getImageRep(var1, var2);
- return var5.prepare(var3);
- }
- } else {
- return true;
- }
- }
-
- static int checkScrImage(Image var0, int var1, int var2, ImageObserver var3) {
- WImage var4 = (WImage)var0;
- int var5;
- if (var1 != 0 && var2 != 0) {
- if (var1 < 0) {
- var1 = -1;
- }
-
- if (var2 < 0) {
- var2 = -1;
- }
-
- var5 = var4.getImageRep(var1, var2).check(var3);
- } else {
- var5 = 32;
- }
-
- return ((sun.awt.image.Image)var4).check(var3) | var5;
- }
-
- public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
- return checkScrImage(var1, var2, var3, var4);
- }
-
- public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
- return prepareScrImage(var1, var2, var3, var4);
- }
-
- public Image createImage(ImageProducer var1) {
- return new WImage(var1);
- }
-
- public Image createImage(byte[] var1, int var2, int var3) {
- return this.createImage(new ByteArrayImageSource(var1, var2, var3));
- }
-
- static native ColorModel makeColorModel();
-
- static ColorModel getStaticColorModel() {
- if (screenmodel == null) {
- screenmodel = makeColorModel();
- }
-
- return screenmodel;
- }
-
- public ColorModel getColorModel() {
- return getStaticColorModel();
- }
-
- public Dimension getScreenSize() {
- return new Dimension(this.getScreenWidth(), this.getScreenHeight());
- }
-
- public native int getScreenResolution();
-
- public native void sync();
-
- native int getScreenWidth();
-
- native int getScreenHeight();
-
- public String[] getFontList() {
- String[] var1 = new String[]{"Dialog", "Helvetica", "TimesRoman", "Courier", "Symbol"};
- return var1;
- }
-
- public FontMetrics getFontMetrics(Font var1) {
- return WFontMetrics.getFontMetrics(var1);
- }
-
- void sendEvent(AppletPeer var1, int var2, ObjectPeer var3) {
- var1.sendEvent(new StandardGUIEvent(var2, var3));
- }
-
- void sendPaintEvent(AppletPeer var1, ObjectPeer var2, int var3, int var4, int var5, int var6, int var7) {
- PaintEvent var8 = new PaintEvent(var2, var3, var4, var5, var6, var7);
- var1.coalesceEvent(var8);
- var1.sendEvent(var8);
- }
-
- void removeEventsForObject(ObjectPeer var1) {
- if (var1 != null) {
- AppletPeer var2 = var1.getApplet();
- if (var2 != null) {
- var2.removeEvents(var1);
- }
- }
-
- }
- }
-